package partTwo;
/**本类用来测试成员内部类被static修饰*/
public class TestInner3 {
    public static void main(String[] args) {
        /**如何访问内部类的show()?*/
        //4.创建内部类对象访问show()
        //方式一:按照之前的方式,创建内部类对象调用show()
        //Outer3.Inner3 oi = new Outer3().new Inner3();
        //oi.show();
        //方式二:创建匿名内部类对象访问show()
        //new Outer3().new Inner3().show();

        /**现象:当内部类被static修饰以后,new Outer3()报错*/
        //6.用static修饰内部类以后,上面的创建语句报错,注释掉
        //通过外部类的类名创建内部类对象
        Outer3.Inner3 oi = new Outer3.Inner3();
        oi.show();

        //7.匿名的内部类对象调用show()
        new Outer3.Inner3().show();

        //9.访问静态内部类中的静态资源--链式加载
        Outer3.Inner3.show2();
    }
}

//1.创建外部类Outer3
class Outer3{
    //2.创建成员内部类Inner3
    //5.内部类被static修饰—并不常用!浪费内存!
    static class Inner3{
        //3.定义成员内部类中普通的成员方法
        public void show() {
            System.out.println("我是Inner3类的show()");
        }
        //8.定义成员内部类的静态成员方法
        static public void show2() {
            System.out.println("我是Inner3的show2()");
        }
    }
}